package liu.zhi.peng;

import java.io.File;
import java.io.FileNotFoundException;
import java.nio.charset.StandardCharsets;
import java.util.*;

 public class ReadFile {
     //创建一个集合用来将文本文件中的信息存储在这个集合中
    public static TreeSet<Student> set = new TreeSet<>();
    public static TreeSet<Student> readStudentFile(String filename) throws FileNotFoundException {
        //创建一个装学生信息的集合
        TreeSet<Student> stu = new TreeSet<>();
        //创建一个文件，指明我的txt文件
        File file = new File(filename);
        //创建一个scanner类，用来扫描txt文件内容，扫描的时候使用标准字符集UTF-8进行编码
        //因为我的源码文件一般时候的都是UTF-8可变字节。
        Scanner scanner = new Scanner(file, StandardCharsets.UTF_8.toString());
        //开始扫描数据
        //一次扫描一行
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            //将扫描的数据按照英文的,分割开。因为我的student类中的tostring方法重写了，打印的格式是：name  +","+id  +","+Chinese +","+Math +","+English;
            String[] parts = line.split(",");
            //如果分割后的字符数组的长度是5，说明读取的数据正常。
            if (parts.length == 5) {
                //去除每个字符串的前后的空格
                String name = parts[0].trim();
                String id = parts[1].trim();
                double chinese = Double.parseDouble(parts[2].trim());
                double math = Double.parseDouble(parts[3].trim());
                double english = Double.parseDouble(parts[4].trim());
                //将每一行的数据添加到一个学生里面
                stu.add(new Student(name, id, chinese, math, english));
            }
        }
        //释放资源
        scanner.close();
        return stu;
    }

    //将从文件中读取的信息装填到集合中之后返回此集合
    public static TreeSet<Student> print() throws FileNotFoundException {
        set = ReadFile.readStudentFile("D:\\java-code\\student_manage_system2\\src\\liu\\zhi\\peng\\student.txt");
        return set;
    }
}
